package com.pds.web.opsOrganization.service;

import com.pds.common.core.domain.entity.SysDept;
import com.pds.common.core.domain.entity.SysUser;
import com.pds.web.company.excel.CompanyContactExcel;
import com.pds.web.opsOrganization.domain.OpsOrganizationInfo;

import java.util.List;
import java.util.Map;

public interface IOpsOrganizationService {
    /**
     * 环保局新增运维机构
     * @param info
     */
    void addOrganization(OpsOrganizationInfo info) throws Exception;

    SysUser addSysUser(OpsOrganizationInfo info, SysDept dept, String roleName, String roleId);

    void addRoles(Long userId, String roleId);

    /**
     * 修改运维机构信息
     * @param info
     * @param type 1环保局修改，2运维机构自己修改
     */
    void updateOrganization(OpsOrganizationInfo info,int type) throws Exception;

    /**
     * 查询运维机构列表
     * @return
     */
    List<OpsOrganizationInfo> getOrganizationList(OpsOrganizationInfo info);

    /**
     * 查询运维机构信息
     * @param opsId 运维机构id
     * @return
     */
    OpsOrganizationInfo getInfoById(String opsId);

    /**
     * 运维机构新增用户
     * @param map
     *          - userName 用户名
     *          - phone 手机号
     *          - roleId 角色id
     * @return
     * @throws Exception
     */
    void addUser(Map<String,String> map) throws Exception;

    /**
     * 批量导入人员
     *
     * @param list
     * @return
     */
    Integer addUserBatch(List<CompanyContactExcel> list) throws Exception;

    /**
     * 修改用户
     * @param map
     */
    void updateUser(Map map) throws Exception;

    /**
     * 修改运维机构状态：
     * @param id
     * @param status 0正常、1禁用、2删除
     */
    void updateStatus(Long id, String status) throws Exception;

    /**
     * 批量导入运维机构
     * @param list
     */
    void batchInsert(List<OpsOrganizationInfo> list) throws Exception;
}
